如何在Android中执行TDD?第4部分 - 使用Espresso进行UI测试(译)

原文

在这篇文章中,我们将介绍什么是Espresso,Espresso提供了什么API,如何编写UI测试。

什么是Espresso ?

Espresso正在为谷歌测试用于UI测试的框架。 它为单一应用程序中的UI测试提供了API。 用户界面测试可确保用户交互不良或遇到意外行为。

我知道你现在习惯于为你的代码编写测试(至少这是我对你的期望)。

Espresso主要的三个类

  1. ViewMatcher:用于使用onView()在UI上查找视图
  2. ViewActions:用户使用ViewInteraction.perform()对UI元素执行操作
  3. ViewAssertion:用于使用ViewInteraction.check()来断言视图
1
2
3
onView(withId(R.id.my_view))// withId(R.id.my_view) is a ViewMatcher
.perform(click()) // click() is a ViewAction
.check(matches(isDisplayed())); // matches(isDisplayed()) is a ViewAssertion

在LoginActivity上按SHIFT + CTRL + T并在androidTest文件夹中为UI测试创建测试类。

在类名上创建@RunWith(AndroidJUnit4.class)之后

现在我们用@Test注解编写测试checkUserNameEditTextIsDisplayed()。 我们还需要ActivityTestRule

checkUserNameEditTextIsDisplayed()中我们检查的是用户名EditText显示在UI上。

Espresso 的方法是自我解释的。

运行它将通过的测试(对于运行测试,我们需要仿真器或实际设备,因为这是UI测试)。

现在尝试使用户编辑文本的可见性消失,并再次运行测试失败。

现在我们测试点击空白字段的登录按钮,并检查是否显示错误消息。

运行测试正在通过。

接下来我们将为登录成功编写测试。

干杯!🍺🍺🍺。 我们已经完成了基本的测试。 测试中还有很多需要探索的地方。

希望听到你的建议,对这个系列或帖子的投入
如果你喜欢关于TDD的系列,请将其推荐给其他人。
欲了解更多信息,请在Medium上关注我。